Concurrently presented data subfeeds

ABSTRACT

When presenting a news feed (e.g., statuses of contacts in a social media network), it may be inefficient to display the data items in a single column according to a single filter, such as a designated group of contacts. Rather, from the data feed, a set of at least two data subfeeds may be generated based on different filters, and the at least two data subfeeds may be currently presented to the user (e.g., as two or more vertically aligned columns, each presenting a different set of data items based on a different filter.) The user may prefer the concurrent presentation due to the contextual separation of the data items according to different filters, and may more easily administrate the filters and groupings; e.g., dragging data items from one column to another column may alter the filters to achieve a more preferred sorting of data items in future presentations.

BACKGROUND

Within the field of computing, many scenarios involve a presentation ofa data feed, such as a set of events in a computing environment, a setof news items published by a news outlet, the statuses of a set ofcontacts in a social media network, and a set of media items publishedby a set of media producers. A user may request to view the data feed asa set of data items; e.g., the user may request a column of data itemsto be displayed as a vertically aligned list or as a tree view.Moreover, among the data items, the user may define a group (e.g.,within the user's set of contacts in the social media network, the usermay designate a subset of contacts comprising the user's professionalcolleagues), and may request a view of the data feed filtered accordingto the group (e.g., a presentation of the statuses of members of theprofessional colleagues group.)

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key factors oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

Scenarios involving the presentation of a data feed may be difficult orinefficient in various aspects. As a first example, when data items of adata feed are presented in a vertical list, the presentation mayinefficiently utilize the width of the display, particularly in view ofthe prevalence and popularity of wide display devices and of multipledisplays arranged in a horizontal configuration. As a second example, itmay be inefficient for a user to issue several consecutive requests tofilter the data feed according to various groups; e.g., a particulardata item might be redundantly displayed in many such presentations,contrary to the preferences of the user. As a third example, it may bedifficult for the user to create and manage the groups whereby the datafeed might later be filtered.

Alternative techniques for presenting the data feed that might presentvarious advantages involve generating various data subfeeds, eachcomprising a subset of the data items of the data feed, and concurrentlypresenting the data subfeeds to the user. For example, in a social medianetwork, the user's contacts might be separated in various groups, suchas “Friends,” “Professional Contacts,” “School Contacts,” and “EveryoneElse,” and four columns may be concurrently presented to the user invertical alignment (e.g., having the same Y-axis positions and columnheights within the display space), with each column presenting avertical list of the statuses of the represented contacts. Theconcurrent presentation of groups (in the exemplary columnar layout orin a different layout) may enable more efficient use of the displayspace of the user's display device, and may more efficiently present thedata feed to the user with contextual grouping. Additionally,concurrently presenting several data subfeeds may permit additionalfiltering, e.g., by restricting a particular data item to appear in onlyone displayed data subfeed in order to reduce redundancy, and byallowing the user to transfer data items between data subfeeds in orderto manage the filters associated therewith. These and other advantagesmay be achieved by concurrently displaying various data subfeeds of adata feed in accordance with the techniques presented herein.

To the accomplishment of the foregoing and related ends, the followingdescription and annexed drawings set forth certain illustrative aspectsand implementations. These are indicative of but a few of the variousways in which one or more aspects may be employed. Other aspects,advantages, and novel features of the disclosure will become apparentfrom the following detailed description when considered in conjunctionwith the annexed drawings.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of an exemplary scenario featuring asubmission of data items comprising a data feed requested by a user.

FIG. 2 is an illustration of two exemplary presentations to the user ofthe data feed illustrated in FIG. 1.

FIG. 3 is an illustration of two exemplary presentations to the user ofthe data feed illustrated in FIG. 1, the exemplary presentationsgenerated in accordance with the techniques presented herein.

FIG. 4 is a flow chart illustrating an exemplary method of presenting adata feed comprising at least one data item on a display of a device.

FIG. 5 is a component block diagram illustrating an exemplary system forpresenting a data feed comprising at least one data item on a display ofa device.

FIG. 6 is an illustration of an exemplary computer-readable mediumcomprising processor-executable instructions configured to embody one ormore of the provisions set forth herein.

FIG. 7 is an illustration of an exemplary scenario featuring filtersinferred from commonalities among the metadata items of the data itemsof the data feed.

FIG. 8 is an illustration of an exemplary scenario featuring ageneration of a filter having criteria inferred through detected userinterest in various data items of the data feed.

FIG. 9 is an illustration of an exemplary scenario featuring a useraction representing a request to create a new data subfeed comprising aset of data items and the generation of a filter having criteriainferred from the metadata items of the selected data items.

FIG. 10 is an illustration of an exemplary scenario featuring a useraction representing a request to move a set of data items from a firstdata subfeed to a second data subfeed and the updating of the criteriaof the respective filters inferred from the metadata items of theselected data items.

FIG. 11 is an illustration of an exemplary scenario featuring someimprovements in the application of filters and the naming of datasubfeeds.

FIG. 12 is an illustration of an exemplary scenario featuring analternative presentation of data subfeed groups and a user actionrepresenting a group display request relating thereto.

FIG. 13 illustrates an exemplary computing environment wherein one ormore of the provisions set forth herein may be implemented.

DETAILED DESCRIPTION

The claimed subject matter is now described with reference to thedrawings, wherein like reference numerals are used to refer to likeelements throughout. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of the claimed subject matter. It may beevident, however, that the claimed subject matter may be practicedwithout these specific details. In other instances, structures anddevices are shown in block diagram form in order to facilitatedescribing the claimed subject matter.

Within the field of computing, many scenarios involve a presentation ofa data feed to a user, where the data feed comprises a set of dataitems. As a first example, a set of notifications arising within thecomputing environment, such as the receipt of email, antivirus scans,and the completion of disk management processes, may be presented toalert a user of relevant events. As a second example, a user maysubscribe to a source of news, such as via a Really Simple Syndication(RSS) feed subscription offered by an RSS publisher of a particular typeof data, and a subscription client may present the syndicated data itemsto the user upon receipt. As a third example, a user of a social medianetwork service may select a set of contacts, and may wish to view thestatus updates posted by these contacts in some order (e.g., sortedchronologically or by popularity.) As a fourth example, a user may beinterested in a set of data items posted to a data sharing service, suchas files uploaded to a file store or photos uploaded to a photo sharingservice, and may request a list of new data items.

FIG. 1 presents an illustration of an exemplary scenario 10 involving auser 12 operating a device 14 (such as a personal computer, a cellphone,or a personal data assistant) having a display 16. The user 12 mayaccess a service 18 that stores a set of data items 20, such as a photoserver hosting a set of photos submitted by various contributors 24.Respective data items 20 may include some content (e.g., the digitalimage comprising a photo; the text comprising document; or the digitalvideo and audio comprising a movie), and may also include one or moremetadata items 22 that describe the content, such as the author of animage or photographer of a photo; the date and time when the image wascompleted or the photo was captured; a caption, description, or set ofkeywords describing the contents; and the equipment used to generate theimage or photo. The user 12 may wish to access the data items 20 as adata feed 26, whereby the user 12 may be notified of the receipt of newdata items 20 by the service 18, such as the uploading of new photos bythe contributing users. The user 12 may be notified of such occurrencesthrough a “pull” mechanism, e.g., upon user request, and/or through a“push” mechanism, e.g., by being spontaneously notified by the service18 upon receipt of one or more new data items 20.

In the exemplary scenario 10 of FIG. 1, the user 12 may configure thedevice 14 to retrieve the data feed 26, and to present the data feed 26on the display 16 of the device 14. However, the data feed 26 may bepresented to the user 12 in various ways. FIG. 2 presents anillustration of an exemplary scenario 30 featuring two differentpresentations to the user 12 of the data items 20 comprising the datastream 26 of FIG. 1. The first exemplary presentation 32 of FIG. 2features a simple presentation of the complete data feed 26, comprisingall of the data items 20 of the data feed 26 along with some of themetadata items 22. The data items 20 are presented in horizontalalignment as a vertical column, and may be sorted in various ways (e.g.,sorted chronologically as per the first exemplary presentation 32, orsorted by popularity or rating.) Alternatively, the user 12 may wish toview a subset of the data items 20. For example, the user 12 may definea group of contributors whose photos are of particular interest (e.g.,contributors who are also friends or family members of the user 12), andmay request to view the subset of data items 20 in the data feed 26submitted by members of this group. The device 14 may therefore presenton the display a second exemplary presentation 34 of the data feed 26,comprising only the data items 20 submitted by members of the group. Inthis exemplary scenario 30, the second user may not be a member of thedefined group, but the third user may be, so the data items 20 generatedby the third user are presented in the second exemplary presentation 34(along with one or more metadata items 22 describing the respective dataitems 20, such as the time of the image.) In this manner, the device 14may display different presentations of the data feed 26 according to theinterests of the user 12.

However, the exemplary presentations illustrated in the exemplaryscenario 30 of FIG. 2 may indicate some potential disadvantages withthese techniques for presenting the data feed 26 to the user 12. As afirst example, it may be appreciated that some data feeds 26 may befrequently updated, such as by a data source that submits many dataitems 20, or by a large set of data sources (e.g., a data feed 26 ofphotos that may be submitted by a large body of contributing users.)These data feeds 26 may be difficult to follow according to the firstexemplary presentation 32 comprising the entire set of data items 20 ofthe data feed 26, because the data feed 26 may be updated too quicklyfor the user 12 to follow as an updating set of data items 20. Upon eachviewing, the user 12 may be presented with a different set of new dataitems 20, instead of a small set of new data items 20 submitted afterthe previously viewed data items 20; and the user 12 may have difficultyfinding older data items 20 of interest within the rapidly updated datafeed 26. As a second example, if the data feed 26 is presented as avertical column of horizontally aligned data items 20 (whether or notrestricted to a particular group or subset), it may be appreciated thata considerable amount of lateral display space may be unused; e.g., awindow hosting the presentation of the data feed 26 may includesignificant whitespace to the left or right of the columnar presentationof the data feed 26. This inefficient use of horizontal display spacemay be exacerbated, e.g., by the increasing prevalence of wide displaydevices (such as monitors having a comparatively high width-to-heightaspect ratio), and/or by the increasing popularity of multi-displaycomputer configurations with displays arranged horizontally to present acomparatively wide display space. As a third example, it may bedifficult for the user to define and maintain various groups (e.g.,frequent maintenance may be involved to keep a current “friends” groupof users.) As a fourth example, it may be frustrating for the user toview consecutively many different groups or presentations of the datafeed 26. For example, viewing the data feed 26 in various configurationsmay compel the user 12 to make multiple selections from a “view by group. . . ” combo box or other user control. Also, if a particular data item26 falls within many groups, the user 12 may be presented with the samedata item 26 in many different presentations of the data feed 26,thereby increasing the frustration to the user by redundantly presentingthe same data item 26 in several presentations and reducing the value ofmaintaining multiple groups. In these and other ways, it may beinefficient to present the data feed 26 to the user 12 according to theexemplary presentations illustrated in FIG. 2.

Presented herein are alternative techniques for presenting the news feed26 to the user 12 in a more advantageous manner. These techniquesinvolve passing the data items 20 of the data feed 26 to two or morefilters, where each filter specifies a different set of criteria thatmay be applied to the metadata items 22 of the respective data items 20of the data feed 26. For example, a first filter might specify aparticular set of criteria, such as that the author of the image is froma certain group, and that the image was created within a certaintimeframe (e.g., within the current calendar year.) A second filtermight specify a different set of criteria, such as that the author ofthe image is from the same group, but that the image was created withina different timeframe (e.g., within the previous calendar year.) Eachfilter may be applied to the metadata items 22 of respective data items20, and some data items 20 may pass through the filter to create a datasubfeed, while others are excluded by the filter and from the datasubfeed. Therefore, each filter produces a different data subfeed, eachcomprising a subset of data items 20 from the data feed 26. (Each datasubfeed may contain a distinct set of data items 20 as compared with anyother data subfeed; or may contain an identical set of data items 20 asanother data subfeed, but may have selected the same data items 20according to a different set of criteria.) After at least two datasubfeeds have been generated according to different filters, the datasubfeeds may be concurrently presented to the user 12 as a differentdata subfeed group on a display of a device. For example, the datasubfeeds may be presented as two or more vertically aligned columns,each column presenting a horizontally aligned set of data items 20comprising a different subfeed.

FIG. 3 presents an exemplary scenario 40 featuring two differentpresentations of the data items 20 comprising a data feed 26 inaccordance with the techniques discussed herein. The data subfeed 26comprises a series of data items 20, each having one or more metadataitems 22 that describe the contents of the data item 20. The data feed26 may be exposed to a first filter 42, and the respective data items 20of the data feed 26 may be compared with one or more criteria of thefirst filter 42. For example, the first filter 42 may comprise acriterion 44 specifying that only data items 20 generated by the useridentified as “User 2” are to be selected, and that nonmatching dataitems 20 are to be excluded. The data items 20 that match the criteriaof the first filter 42 may be selected for a first data subfeed 46.Similarly, a second filter 48 may be applied to the data feed 26 with adifferent set of criteria (e.g., a criterion 50 indicating that onlydata items 20 created by the user identified as “User 3” are to beincluded), and the data items 20 matching the criteria of the secondfilter 48 may be selected to comprise a second data subfeed 52. Thefirst data subfeed 46 and the second data subfeed 52 may then beconcurrently displayed as a first data subfeed group 54 and a seconddata subfeed group 56, respectively, on the display 16 of a device, suchas a computer. According to the exemplary scenario 40 of FIG. 3, thefirst data subfeed 46 may be presented as a first data subfeed group 54oriented as a first column of horizontally aligned data items 20, and(in this exemplary presentation) one or more metadata items 22 presentedtherewith; and the second data subfeed 52 may be concurrently presentedas a second data subfeed group 56 oriented as a second column ofhorizontally aligned data items 20, where the second column isvertically aligned with and positioned in lateral adjacency with respectto the first column. Alternatively or additionally, the data feed 26 maybe exposed to a third filter 58 having a different set of criteria(e.g., images comprising photos of people) that may be compared to themetadata items 22 of respective data items 20 (e.g., descriptivekeywords, topical tags, or descriptors of objects in the imageidentified by image recognition algorithms) to generate a third datasubfeed 60 that may be presented on the display 16 as a third datasubfeed group 66, and/or a fourth data filter 62 to generate a fourthdata subfeed 64 that may be presented on the display 16 as a fourth datasubfeed group 68. A particularly large or high-resolution display 16might present more than two data subfeed groups; e.g., on a particularlywide display 16, all four columns may be displayed to present fourdifferent data subfeeds to the user 12, each comprising a different setof data items 20 that are contextually related according to the criteriaof a different filter.

As per these techniques and as illustrated in FIG. 3, the data feed 26may be presented to the user 12 as a set of data subfeeds, eachcomprising a different set of data items 20 (or, at least, a similar setof data items 20 selected according to a different set of criteria.)This presentation may present several advantages with respect to otherpresentation techniques (such as illustrated in the exemplary scenario30 of FIG. 2.) As a first example, the concurrent presentation of two ormore data subfeeds might improve the user's review of the contents ofthe data feed 26, particularly where the data feed 26 includes a largenumber of data items 20 and/or is frequently updated. The data feed 26is thereby segmented into a set of smaller data subfeeds, eachcomprising a smaller set of data items 20 with a particular contextualtheme that may be of interest to the user 12. As a second example, theconcurrent presentation of data subfeeds in different data subfeedgroups (e.g., as a set of vertically aligned columns) may moreefficiently utilize the lateral area of the display 16 of the user'sdevice. As a third example, in some implementations of these techniques,a data item 20 may be prevented from being included in more than oneconcurrently displayed data subfeed group in order to reduce theredundant presentation of the data item 20 to the user 12. As a fourthexample, in some embodiments, the user 12 may be permitted to manipulatethe data items 20 of the respective data subfeeds, and such actions maybe used to adjust the filters associated with the correspondingsubfeeds. For example, if a user 12 drags a data item 20 from a firstcolumn to a second column, the criteria of the first filtercorresponding to the first column may be adjusted to exclude the dataitem 20 (and, perhaps, other data items 20 that are inferred to besimilar to the moved data item 20) from the first column, while thecriteria of the second filter corresponding to the second column may beadjusted to promote the inclusion of the moved data item 20 (and,perhaps, other data items 20 that are inferred to be similar to themoved data item 20) in future presentations thereof. These and otherpotential advantages may be achieved, and/or disadvantages may bereduced, by presenting the data feed 26 according to the techniquesdiscussed herein.

FIG. 4 presents a first embodiment of these techniques, illustrated asan exemplary method 70 that may be achieved using a device having aprocessor and a display 16. The exemplary method 70 begins at 72 andinvolves executing 74 on the processor instructions configured topresent a data feed 26 comprising at least one data item 20, whererespective data items 20 have at least one metadata item 22. In theexemplary embodiment 70 illustrated in FIG. 4, the instructions areconfigured to compare 76 the metadata items 22 of respective data items20 of the data feed 26 to criteria of a first filter 42 to generate afirst data subfeed 46, and to compare 78 the metadata items 22 ofrespective data items 20 of the data feed 26 to criteria of a secondfilter 48 to generate a second data subfeed 52. The instructions arealso configured to concurrently present 80 on the display 16 a firstdata subfeed group 54, comprising the data items 20 of the first datasubfeed 46, and a second data subfeed group 56 comprising the data items20 of the second data subfeed 52. Having achieved the presentation ofthe data feed 26 according to the techniques discussed herein, theexemplary method 70 ends at 82.

FIG. 4 presents an exemplary scenario 90 featuring a second exemplaryembodiment of the techniques discussed herein. The exemplary scenario 90features a device 92 having a processor 94 and a display 96 whereupon adata feed 26, comprising at least one data item 20 where respective dataitems 20 have at least one metadata item 22, may be presented to a user12. The device 92 has access to the data feed 26, and also a firstfilter 42 and a second filter 48, respectively comprising a differentset of criteria that may be applied to the data items 20 of the datafeed 26 in order to generate a different data subfeed. Within thisexemplary scenario 90, the techniques discussed herein may beimplemented as an exemplary system 98 configured to present the datafeed 26 on the display 96. The exemplary system 98 comprises a datasubfeed generating component 100, which is configured to compare themetadata items 22 of respective data items 20 of the data feed 26 tocriteria of the first filter 42 to generate a first data subfeed 46, andto compare the metadata items 22 of respective data items 20 of the datafeed 26 to criteria of the second filter 48 to generate a second datasubfeed 52. The exemplary system 98 also comprises a data subfeedpresenting component 102, which is configured to concurrently present onthe display 96 a first data subfeed group 104 comprising the data items20 of the first data subfeed 46, and a second data subfeed group 106,comprising the data items 20 of the second data subfeed 52. Byimplementing the components of the exemplary system 98 configured inthis manner, one of ordinary skill in the art may achieve thepresentation of the data feed 26 to the user 12 according to thetechniques discussed herein.

Still another embodiment involves a computer-readable medium comprisingprocessor-executable instructions configured to apply the techniquespresented herein. An exemplary computer-readable medium that may bedevised in these ways is illustrated in FIG. 6, wherein theimplementation 110 comprises a computer-readable medium 112 (e.g., aCD-R, DVD-R, or a platter of a hard disk drive), on which is encodedcomputer-readable data 114. This computer-readable data 114 in turncomprises a set of computer instructions 116 configured to operateaccording to the principles set forth herein. In one such embodiment,the processor-executable instructions 116 may be configured to perform amethod of presenting a data feed comprising at least one data item on adisplay of a device, such as the exemplary method 70 of FIG. 4. Inanother such embodiment, the processor-executable instructions 116 maybe configured to implement a system for presenting a data feedcomprising at least one data item on a display of a device, such as theexemplary system 98 of FIG. 5. Many such computer-readable media may bedevised by those of ordinary skill in the art that are configured tooperate in accordance with the techniques presented herein.

The techniques discussed herein may be devised with variations in manyaspects, and some variations may present additional advantages and/orreduce disadvantages with respect to other variations of these and othertechniques. Moreover, some variations may be implemented in combination,and some combinations may feature additional advantages and/or reduceddisadvantages through synergistic cooperation. The variations may beincorporated in various embodiments (e.g., the exemplary method 70 ofFIG. 4 and the exemplary system 98 of FIG. 5) to confer individualand/or synergistic advantages upon such embodiments.

A first aspect that may vary among embodiments of these techniquesrelates to the scenarios wherein these techniques may be utilized. As afirst example of this first aspect, the techniques may be utilized withmany types of devices featuring displays, such as a workstation computerhaving a large display, possibly comprising several monitors positionedlaterally to present a comparatively wide display space; a portablepersonal computer, such as a netbook, having a somewhat smaller display;and a mobile phone having a comparatively small display. The devicemight also comprise a set of two or more devices; e.g., a server, suchas the server of the data feed 26, may generate the data subfeeds, andmay send the data subfeeds to a device 14 operated by the user 12 forpresentation on the display 16 of the device 14. As a second example ofthis first aspect, many types of implementations may be devised thatembody the techniques discussed herein. For example, in the exemplaryscenario 90 of FIG. 5, respective components of the exemplary system 98may be implemented as, e.g., a volatile memory (such as system RAM) orstatic memory (such as flash RAM) comprising instructions that implementthe architecture of one or more components and the respectiveconfigurations thereof; a static circuit, such as a semiconductor, thatis configured to perform the logic of the component; a programmablecircuit, such as an FPGA or EEPROM, that is configured to perform thelogic of the component; or a combination of such implementations.

As a third example of this first aspect, the data feed may comprise manytypes of data items 20 representing various types of items, such asnotable events arising within a computing environment; media objects,such as documents, pictures, sounds, videos, or three-dimensionalmodels; data objects, such as applications, databases or databaserecords, or files; representations of physical entities, such as devicesor individuals; or a combination of such objects. The data items 20comprising the data feed 26 might also include many types of data,including the full contents of the data item 20; a description of thedata item 20 (e.g., a thumbnail version or text description of an imageor photo, or the first few lines of a document); one or more metadataitems 22 associated with the data item 20; a link to access the dataitem 20; or simply a notification that one or more new data items havebeen received. The data feed 26 may also be received and/or compiledfrom one or more data sources; e.g., the data feed 26 may comprise afirst data item 20 received from a first data source (such as a firstuser or a first server) and a second data item 20 received from a seconddata source (such as a second user or a second server.) Those ofordinary skill in the art may devise many such scenarios wherein thetechniques discussed herein may be advantageously utilized.

A second aspect that may vary among embodiments of these techniquesrelates to the manner of generating one or more filters used to selectdata items 20 from the data feed 26 to comprise a data subfeed. As afirst example of this second aspect, the filter may use many types ofcriteria, while performing the selection of data items 20, includingcriteria that utilize Boolean logic (e.g., specifying particularfeatures of metadata items 22 that are to be exactly or approximatelymatched to include a data item 20 in the data subfeed, or to exclude adata item 20 from the data subfeed) and/or fuzzy logic (e.g., a scoringsystem that estimates the comparative degree of belonging of a data item20 to a particular data subfeed, based on an iterative evaluation of themetadata items 22 of the data item 20.) As a second example of thissecond aspect, the filter may apply many types of evaluative processesto the data items 20, including an expert system based on a set ofheuristics, a neural network, a genetic algorithm, a Bayesianclassifier, an explicitly programmed logical hierarchy or flowchart, orvarious other forms of statistical and/or logical analysis.

As a third example of this second aspect, the filter may apply thecriteria to one or more aspects of respective data items 20; e.g., byapplying a criterion to one metadata item 22 (e.g., “select all imagesauthored by the second user”), to several metadata items 22 (e.g.,“select all images having the word ‘cow’ in the filename, caption, ordescription of the image”), or to the metadata items 22 of several items(e.g., “examine all of the images generated by the second user, andselect the image having the latest creation date and time.”) Themetadata items 22 may also be stored inside the data item 20, storedwith the data item 20 (e.g., in an encapsulation container), storedseparately from but associated with the data item 20 (e.g., in ametadata table of a database), and/or synthesized in relation to thecontent or other metadata items of the data item 20 (e.g., metadataindicating the objects presented in an image that may be generated byapplying an image recognition algorithm to the image.)

As a fourth example of this second aspect, the logic embodied by thesecriteria and/or implemented by these evaluative processes may begenerated in many ways. In a first set of embodiments of this fourthexample, the logic may be specified by one or more users 12 (including auser who generates the data items 20, a user who provides the data feed26, and/or the user 12 to whom the data feed 26 is to be presented.) Forexample, such users may select one or more criteria for selecting dataitems 20 to comprise a data subfeed, including one or more inclusioncriteria specifying at least one metadata item 26 whereby matching dataitems 20 are included by the filter, and/or one or more exclusioncriteria specifying at least one metadata item 22 whereby matching dataitems 20 are excluded by the filter.

In a second set of embodiments of this fourth example, one or morecriteria of a filter may be inferred by identifying one or morecommonalities among the metadata items of respective data items 20 inthe data feed 26. For example, an embodiment may examine the metadataitems 22 of the data items 20 of a data feed 26 in order to identifycommonalities among a subset of such data items 20 that may imply acontextual relationship (e.g., authorship by a specific individual orgroup of individuals; receipt from a particular data source; creationwithin a particular time frame; and/or shared keywords or topical tags.)The embodiment may therefore generate a filter with criteria specifyingsuch commonalities, and may present the subset of data items 20 as adata subfeed having a contextual basis. In one such embodiment,respective data items 20 may be generated by at least one entity havinga relationship with the user 12 to whom the data feed 26 is to bepresented; and among the data items 20 of a data feed 26 generated byvarious entities, at least one commonality may be identified among themetadata items 22 thereof related to the relationships of the entitieswith the user 12, and this commonality may be included in a filter andused to generate a data subfeed. For example, a data feed 26 comprisinga photo stream may feature data items 20 generated by entities havingdifferent relationships with the user 12 as represented in a socialmedia network, such as a friend, family, or professional colleaguerelationship with the user 12. If several data items 20 have metadataitems 22 indicating authorship by entities represented as professionalcolleagues of the user 12, this metadata item 22 may be identified as acommonality among such data items 20, and a “photos created byprofessional colleagues” filter may be created to generate acorresponding data subfeed of the data feed 26.

FIG. 7 presents an exemplary scenario 120 featuring the generation offilters 122 of various data subfeeds 124 where the criteria of thefilters 122 are selected based on commonalities indentified among themetadata items 22 of respective data items 20 of the data feed 26. Inthis exemplary scenario 120, the data feed 26 comprises a set of photosthat may be associated with various metadata items 22, including thesubjects pictured in a particular photo and the time of day depicted inthe photo. In an application of these techniques in accordance with thissecond set of embodiments, a first data subfeed 124 may be generated byidentifying a commonality, such as a subset of photos featuring avehicle as the subject; a second data subfeed 124 may be generated toinclude photos depicting an evening scene; and a third data subfeed 124may be generated to include photos having the subject of fruit(including fruit trees.) It may be advantageous, e.g., to identify acommonality that is shared by a desirably small subset of the data items20, which may lead to a desirably small data subfeed 124. Moreover, theidentification of suitable commonalities may continue until many or allof the data items 20 are selected by the filters of at least one datasubfeed 124.

In a third set of embodiments of this fourth example, one or morecriteria of a filter may be inferred based on actions performed by theuser 12, which may indicate various relevant aspects, such as the user'spreferences for various data items 20; the user's perceptions ofcontextual relatedness of various data items 20; affirmation of ordisagreement with the criteria of a filter; and/or the representation ofunderlying groups upon which such criteria are based. For example, suchembodiments may identify a user action associated with one or more dataitems 20, may identify at least one relevant metadata item of the dataitem 20 that may have motivated the user action, and may infer at leastone filter criterion of at least one filter based on the at least onerelevant metadata item. The filter may then be used to generate a datasubfeed that takes into account the past user actions of the user, suchas by improving the contextual relatedness of selected data items 20 orpresenting to the user 12 a data subfeed of greater interest, based onthe user interests previously expressed by the user 12.

In a first scenario involving this third set of embodiments, a useraction may indicate a user interest of the user 12 in a particular dataitem 20, such as clicking on a thumbnail representation of an image torequest a full-size image, or time spent playing a particular video oraudio segment that is of apparent interest to the user 12. An embodimentmay endeavor to identify at least one relevant metadata item 22 that mayhave motivated the user interest of the user 12 in the data item 20, andmay endeavor to infer at least one filter criterion of a filter based onthe relevant metadata items. This embodiment may therefore present orimprove a filter that is configured to select data items 20 having theat least one relevant metadata item 22 may motivate the future userinterest of the user 12. This filter may resemble a “Favorites” filter,where particular qualities of data items 20 that may have evoked theinterest of the user 12 may be used to infer future interest in similardata items 20 that may also be of interest to the user 12.

FIG. 8 presents an exemplary scenario 130 featuring the generation of afilter 122 of a data subfeed 124 where a criterion of the filter 122 isselected based on detected user interest in various data items 20. Inthis exemplary scenario 130, the data feed 26 comprises thumbnails ofvarious photos, which the user 12 may click to view the full version ofthe photo. An embodiment may track which photos the user 12 has clickedto view, and may infer a user interest of the user 12 in such photos.Moreover, the embodiment may endeavor to infer the aspects of suchphotos that have motivated the user interest, such as by identifyingcommonalities in the metadata items 22 of the viewed photos. In theexemplary scenario 130 of FIG. 8, among the photos comprising the datafeed 26, the user 12 has viewed three photos having vehicles as asubject, and this commonality may be identified by comparing themetadata items 22 of the viewed photos. Based on this identifiedcommonality, a new filter 122 may be generated with a criterion 44 basedon the commonality. A new data subfeed 124 may be generated comprisingthe data items 20 that are selected by the filter 122, and a new datasubfeed group may be presented on the display as a representation of a“Favorites” data subfeed. For example, the data subfeed 124 may includethe three previously viewed photos of vehicles, as well as a fourthphoto in the data feed 26 of a vehicle that the user has not yet viewed.

In a second scenario involving this third set of embodiments, the useraction may comprise a request to create a new data subfeed comprising atleast one data item 20. The embodiment may then endeavor to identify atleast one distinctive metadata item 22 of the selected data items 20, inorder to determine why the user 12 has requested to create a new datasubfeed comprising these data items 20. For example, the metadata items22 of the selected data items 20 may be compared with the metadata items22 of unselected data items 20 of other data subfeeds, in order toidentify one or more commonalities among the selected data items 20 thatare not shared by the unselected data items 20, where such commonalitiesmay imply a distinctive contextual relationship among the selected dataitems 20. If such distinctive metadata items 22 may be identified, theembodiment may generate a new filter having criteria based on thesemetadata items 22, which may be utilized to select other data items 20that share these commonalities, and that the user 12 may wish to includein the new data subfeed. In one such scenario, the data subfeeds may bedisplayed as vertically aligned columns, and an empty column may bedisplayed alongside the columns for the data subfeeds. If the user 12drags one or more data items 20 into the new column, the embodiment mayevaluate the dragged data items 20 for commonalities, may generate a newfilter with criteria based on the identified commonalities, and maypresent to the user 12 a new column for a data subfeed generated withthe new filter. This embodiment may therefore facilitate a user increating new data subfeeds in a convenient manner, and populating thedata subfeed with other data items 20 that are inferred to becontextually related to the selected data items 20.

FIG. 9 presents an exemplary scenario 140 featuring the generation of anew filter 122 and a new data subfeed 124 based on a user action. Inthis exemplary scenario 140, alongside a first data subfeed group 54,displayed as a first column and presenting a first data subfeed, and asecond data subfeed group 56, displayed as a second column andpresenting a second data subfeed, an empty data subfeed group isdisplayed as an empty column. A user action 144 is detected thatinvolves moving a selected subset of data items 20 to the empty column.An embodiment may interpret this user action 144 as a request togenerate a new data subfeed, and may endeavor to generate a new filter122 with criteria 44 reflecting one or more commonalities among theselected data items 20. For example, in the exemplary scenario 140 ofFIG. 9, the user 12 has dragged into the empty column three photosdepicting vehicles. A new filter 122 may therefore be generated having acriterion 44 specifying vehicles; a new data subfeed may be generatedbased on the new filter 122; and a new data subfeed group 142 may bepresented to display the data items 20 comprising the new data subfeed.In this manner, the user 12 may conveniently create new data subfeedswith contextual relationships inferred from commonalities among thesubset of data items 20 selected for the new data subfeed.

In a third scenario involving this third set of embodiments, the useraction may comprise a request to add at least one data item 20 to anexisting data subfeed. The embodiment may then endeavor to identify atleast one relevant metadata item that may promote the inclusion of theadded data item 20 (and similar data items 20) to the data subfeed, suchas by identifying at least one relevant metadata item 22 of the selecteddata item 20 that has a commonality with metadata items 22 of the dataitems 20 already in the data subfeed. The filter of the data subfeed maythen be adjusted by inferring at least one inclusion criterion based onthe at least one relevant metadata item 22. Conversely, the user actionmay comprise a request to remove at least one data item 20 from a datasubfeed. The embodiment may then endeavor to identify at least onerelevant metadata item that may promote the exclusion of the removeddata item 20 (and similar data items 20) from the data subfeed, such asby identifying at least one relevant metadata item 22 of the selecteddata item 20 that contrasts the metadata items 22 of the data items 20remaining in the data subfeed. The filter of the data subfeed may thenbe adjusted by inferring at least one exclusion criterion based on theat least one relevant metadata item 22. These processes may facilitatethe user in adjusting the filters of the data subfeeds in order toachieve a more desirable data subfeed (e.g., where the data items 20 ofthe data subfeed are more contextually related.)

FIG. 10 presents an exemplary scenario 150 featuring the moving of asubset of data items 20 (comprising photos in a photo-based data feed26) from a first data subfeed to a second data subfeed. In thisexemplary scenario 150, the first data subfeed is presented as a firstdata subfeed group 54, displayed as a first column of data items 20 that(according to the criteria of the corresponding filter) were created bythe second user, and the second data subfeed is presented as a seconddata subfeed group 56, displayed as a second column of data items 20that (according to the criteria of the corresponding filter) werecreated by the third user. A user action 144 is detected that involvesmoving a selected subset of data items 20 from the first column to thesecond column. An embodiment may interpret this user action 144 as arequest to adjust the filters associated with the first data subfeed andthe second data subfeed in order to reflect the user action 144. As afirst example, instead of filtering the data feed 26 for the first datasubfeed according to the creator of the data items 20, the filter of thefirst data subfeed may be adjusted to reflect the commonality among thephotos remaining in the first data subfeed group 54, e.g., by inferringa contextual relationship of “photos of people.” As a second example,instead of filtering the data feed 26 for the second data subfeedaccording to the creator of the data items 20, the filter of the seconddata subfeed may be adjusted to reflect the commonality among the photosalready existing and newly placed in the second data subfeed group 56,e.g., by inferring a contextual relationship of “photos without people.”Other inferences may also be achieved (e.g., “photos by the second usershowing the sun” for the first data subfeed and “photos by user 3, or byuser 2 and not showing the sun” for the second data subfeed) that mayresult in different adjustments of the respective filters and differentpresentations of the related data subfeeds.

In a fourth scenario involving this third set of embodiments, a useraction 144 may be used not only to update the filters of respective datagroups, but to update other sets of information that is also compiled bythe user 12. These categories may have category criteria, similar to thefilter criteria of the filters for respective data subfeeds. Moreover,if a filter of a data subfeed is updated, the updates to the filtercriteria of the filter may be propagated back to the category criteriacategory; e.g., upon updating at least one filter criterion, theembodiment may update the at least one category criterion based on theupdate of the at least one filter criterion. For example, the user 12may define a category as a group of contacts comprising “friends” amongthe entire set of contacts represented in a social media network, andmay specify category criteria designating individual contacts or groupsof contacts for inclusion in the “friends” category. Similarly, a filterof a data subfeed may be generated as a “photos by friends” datasubfeed, which may comprise selects data items 20 produced by particularcontributors who are also designated as friends. If the user 12 choosesto remove some or all data items 20 produced by a particular contributorfrom the “friends” data subfeed, an inference may be drawn that thisparticular contributor is no longer a friend of the user 12, andcategory filter of the “friends” category may be adjusted to exclude thecorresponding entity from the category. Those of ordinary skill in theart may involve many types of user actions 144, many types of inferencestherefrom, and many resulting effects on the data subfeeds and/orfilters that may be incorporated in the techniques discussed herein.

A third aspect that may vary among embodiments of these techniquesrelates to improvements in the application of one or more filters to thedata feed 26. As a first example of this third aspect, redundancy in thepresentation of data items 20 among the set of data subfeeds may bereduced by removing data items 20 from the second data subfeed 52 thatare included in the first data subfeed 46. For example, if a data item20 is found to be selected by one filter for inclusion in a particulardata subfeed, the data item 20 may be removed from other data subfeedsor excluded from consideration by the filters of other data subfeeds.Alternatively or additionally, and as a second example of this thirdaspect, a data subfeed may be generated to include some or all of thedata items 20 that are excluded from the other data subfeeds. This datasubfeed may comprise an “everything else” data subfeed that presentsdata items 20 that are not contextually related to the data items 20comprising the other data subfeeds (according to the criteria of therespective filters.)

FIG. 11 presents an exemplary scenario 160 featuring the adjustment ofthe application of the filters to a data feed 26 to improve thepresentation of the data subfeed groups. The data feed 26 comprises dataitems 20 corresponding to photos, and a first filter 122 may have afilter criterion 44 that selects photos depicting a vehicle, while asecond filter 122 may have a filter criterion 44 that selects photosdepicting fruit (including a fruit tree.) Upon applying these filters, afirst data subfeed 46 and a second data subfeed 52 are generated, eachcomprising a subset of the photos of the data feed 26. However, thesedata subfeeds may be adjusted to improve the presentation of the datafeed 26. As a first example, it may be identified that a particular dataitem 20 (the photo of a truck and a fruit tree) has been selected forboth data subfeeds, and may be removed from the second data subfeed 52in order to reduce the redundant presentation of data items 20. As asecond example, several photos may be identified as having been excludedby both filters 122, and may therefore be selected for inclusion in athird data feed, comprising an “everything else” group of data items 20.As a result, three data subfeed groups are presented: a first datasubfeed group 54 for the first data subfeed 46 comprising photos ofvehicles; a second data subfeed group 56 for the second data subfeed 52comprising photos of fruit and fruit trees, but omitting the photo ofthe fruit tree and truck that is presented in the first data feedsubgroup 54; and a third data feed subgroup 66 comprising the photosthat have not been presented in the other data subfeed groups. Those ofordinary skill in the art may devise many techniques for adjusting thepresentation of the data item subgroups according to the techniquesdiscussed herein.

A fourth aspect that may vary among embodiments of these techniquesrelates to the manner of concurrently presenting the data subfeedscomprising the data feed 26. As a first example of this fourth aspect,the data subfeeds may be presented in many ways. In one such example,the data subfeeds may be presented as vertically aligned columns thatare positioned laterally across the display 16; e.g., a first datasubfeed may be presented as a first data subfeed column comprisinghorizontally aligned data items 20 of the first data subfeed, while asecond data subfeed may be presented as a second data subfeed columncomprising horizontally aligned data items 20 of the second datasubfeed, where the second data subfeed column is vertically aligned withrespect to the first data subfeed column. Other presentations may alsobe available, and may present some advantages and/or reducedisadvantages as compared with the columnar view when presented onparticular displays. For example, the data subfeed groups may bepresented as a set of horizontally aligned rows, where each data subfeedgroup is displayed as a set of vertically aligned data items 20. Thispresentation might be advantageous, e.g., when presenting a large numberof data subfeeds, each having a small set of data items, on acomparatively tall display.

As a second example of this fourth aspect, the user 12 may be permittedto toggle between displaying the full data feed 26 and display the datasubfeeds. For example, upon receiving a request from the user 12 topresent the data feed 26, an embodiment may present on the display 16 adata feed group comprising the data items 20 of the data feed 26(instead of the data subfeed groups); and upon receiving a request fromthe user 12 to present the data subfeeds, the embodiment mayconcurrently present on the display 16 the first data subfeed groupcomprising the data items of the first data subfeed and the second datasubfeed group comprising the data items of the second data subfeedinstead of the data feed group.

As a third example of this fourth aspect, the user 12 may be permittedto assign names to the data subfeeds; e.g., upon receiving a requestfrom the user 12 to assign a data subfeed name to a data subfeed, thedata subfeed name may be stored and related to the data subfeed; andwhen the data subfeed group of the data subfeed is subsequentlypresented, the data subfeed name may be presented with the contents ofthe data subfeed. Alternatively or additionally, upon receiving from theuser 12 a group display request relating to the presenting of a datasubfeed group (e.g., a request by the user 12 to display a particulardata subfeed group in a particular region of the display 16), the datasubfeed group of the data subfeed may be displayed according to thegroup display request. Moreover, in some embodiments, the group displayrequest of the user 12 may be stored related to the data subfeed; andupon subsequently presenting the data subfeed group of the data subfeedon the display 16, the embodiment may retrieve a stored group displayrequest related to the data subfeed, and may display the data subfeedgroup according to the stored group display request. For example, if theuser 12 requests to display a particular data subfeed group in a regionof the display 16 having a particular position, size, shape, zoomfactor, opacity, etc., the user action may be stored as a group displayrequest, which may be persistently applied to the data subfeed groupduring subsequent presentations thereof.

FIG. 12 presents an exemplary scenario 170 featuring some of thesevariations in the presentation of data subfeed groups. In this exemplaryscenario 170, a first data subfeed group 54 representing a first datasubfeed (comprising a set of photos depicting vehicles) and a seconddata subfeed group 56 representing a second data subfeed (comprising aset of photos depicting fruit or fruit trees) are presented on a display16. However, in contrast with the exemplary presentations in otherfigures, the data subfeed groups in the exemplary scenario 170 of FIG.12 are presented not as vertically aligned columns respectivelyfeaturing a set of data items 20, but as horizontally aligned rows,arranged in vertical series, respectively featuring a series ofhorizontally aligned data items 20. The data subfeed groups have beenassigned data subfeed group names 162 by the user 12 (e.g., “CoolVehicles” and “Fruit and Trees”), and these names may be persisted bystorage in a data store 174 on behalf of the user 12 and presentedwithin the respective data subfeed groups of the associated datasubfeeds. Additionally, a user action 144 may be detected thatrepresents a group display request 172, such as a request to relocatethe displaying of the first data subfeed group 54 below the second datasubfeed group 56, instead of above the second data subfeed group 56.This group display request 172 may be persisted by storage in the datastore 174, and may be utilized when the first data subfeed group 54 andthe second data subfeed group 56 are subsequently displayed on themonitor 16. Those of ordinary skill in the art may devise many ways ofpresenting the data subfeeds to the user while implementing thetechniques discussed herein.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

As used in this application, the terms “component,” “module,” “system”,“interface”, and the like are generally intended to refer to acomputer-related entity, either hardware, a combination of hardware andsoftware, software, or software in execution. For example, a componentmay be, but is not limited to being, a process running on a processor, aprocessor, an object, an executable, a thread of execution, a program,and/or a computer. By way of illustration, both an application runningon a controller and the controller can be a component. One or morecomponents may reside within a process and/or thread of execution and acomponent may be localized on one computer and/or distributed betweentwo or more computers.

Furthermore, the claimed subject matter may be implemented as a method,apparatus, or article of manufacture using standard programming and/orengineering techniques to produce software, firmware, hardware, or anycombination thereof to control a computer to implement the disclosedsubject matter. The term “article of manufacture” as used herein isintended to encompass a computer program accessible from anycomputer-readable device, carrier, or media. Of course, those skilled inthe art will recognize many modifications may be made to thisconfiguration without departing from the scope or spirit of the claimedsubject matter.

FIG. 13 and the following discussion provide a brief, generaldescription of a suitable computing environment to implement embodimentsof one or more of the provisions set forth herein. The operatingenvironment of FIG. 13 is only one example of a suitable operatingenvironment and is not intended to suggest any limitation as to thescope of use or functionality of the operating environment. Examplecomputing devices include, but are not limited to, personal computers,server computers, hand-held or laptop devices, mobile devices (such asmobile phones, Personal Digital Assistants (PDAs), media players, andthe like), multiprocessor systems, consumer electronics, mini computers,mainframe computers, distributed computing environments that include anyof the above systems or devices, and the like.

Although not required, embodiments are described in the general contextof “computer readable instructions” being executed by one or morecomputing devices. Computer readable instructions may be distributed viacomputer readable media (discussed below). Computer readableinstructions may be implemented as program modules, such as functions,objects, Application Programming Interfaces (APIs), data structures, andthe like, that perform particular tasks or implement particular abstractdata types. Typically, the functionality of the computer readableinstructions may be combined or distributed as desired in variousenvironments.

FIG. 13 illustrates an example of a system 180 comprising a computingdevice 182 configured to implement one or more embodiments providedherein. In one configuration, computing device 182 includes at least oneprocessing unit 186 and memory 188. Depending on the exact configurationand type of computing device, memory 188 may be volatile (such as RAM,for example), non-volatile (such as ROM, flash memory, etc., forexample) or some combination of the two. This configuration isillustrated in FIG. 13 by dashed line 184.

In other embodiments, device 182 may include additional features and/orfunctionality. For example, device 182 may also include additionalstorage (e.g., removable and/or non-removable) including, but notlimited to, magnetic storage, optical storage, and the like. Suchadditional storage is illustrated in FIG. 13 by storage 190. In oneembodiment, computer readable instructions to implement one or moreembodiments provided herein may be in storage 190. Storage 190 may alsostore other computer readable instructions to implement an operatingsystem, an application program, and the like. Computer readableinstructions may be loaded in memory 188 for execution by processingunit 186, for example.

The term “computer readable media” as used herein includes computerstorage media. Computer storage media includes volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions or other data. Memory 188 and storage 190 are examples ofcomputer storage media. Computer storage media includes, but is notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, Digital Versatile Disks (DVDs) or other optical storage,magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or any other medium which can be used to storethe desired information and which can be accessed by device 182. Anysuch computer storage media may be part of device 182.

Device 182 may also include communication connection(s) 196 that allowsdevice 182 to communicate with other devices. Communicationconnection(s) 196 may include, but is not limited to, a modem, a NetworkInterface Card (NIC), an integrated network interface, a radio frequencytransmitter/receiver, an infrared port, a USB connection, or otherinterfaces for connecting computing device 182 to other computingdevices. Communication connection(s) 196 may include a wired connectionor a wireless connection. Communication connection(s) 196 may transmitand/or receive communication media.

The term “computer readable media” may include communication media.Communication media typically embodies computer readable instructions orother data in a “modulated data signal” such as a carrier wave or othertransport mechanism and includes any information delivery media. Theterm “modulated data signal” may include a signal that has one or moreof its characteristics set or changed in such a manner as to encodeinformation in the signal.

Device 182 may include input device(s) 194 such as keyboard, mouse, pen,voice input device, touch input device, infrared cameras, video inputdevices, and/or any other input device. Output device(s) 192 such as oneor more displays, speakers, printers, and/or any other output device mayalso be included in device 182. Input device(s) 194 and output device(s)192 may be connected to device 182 via a wired connection, wirelessconnection, or any combination thereof. In one embodiment, an inputdevice or an output device from another computing device may be used asinput device(s) 194 or output device(s) 192 for computing device 182.

Components of computing device 182 may be connected by variousinterconnects, such as a bus. Such interconnects may include aPeripheral Component Interconnect (PCI), such as PCI Express, aUniversal Serial Bus (USB), firewire (IEEE 1394), an optical busstructure, and the like. In another embodiment, components of computingdevice 182 may be interconnected by a network. For example, memory 188may be comprised of multiple physical memory units located in differentphysical locations interconnected by a network.

Those skilled in the art will realize that storage devices utilized tostore computer readable instructions may be distributed across anetwork. For example, a computing device 200 accessible via network 198may store computer readable instructions to implement one or moreembodiments provided herein. Computing device 182 may access computingdevice 200 and download a part or all of the computer readableinstructions for execution. Alternatively, computing device 182 maydownload pieces of the computer readable instructions, as needed, orsome instructions may be executed at computing device 182 and some atcomputing device 200.

Various operations of embodiments are provided herein. In oneembodiment, one or more of the operations described may constitutecomputer readable instructions stored on one or more computer readablemedia, which if executed by a computing device, will cause the computingdevice to perform the operations described. The order in which some orall of the operations are described should not be construed as to implythat these operations are necessarily order dependent. Alternativeordering will be appreciated by one skilled in the art having thebenefit of this description. Further, it will be understood that not alloperations are necessarily present in each embodiment provided herein.

Moreover, the word “exemplary” is used herein to mean serving as anexample, instance, or illustration. Any aspect or design describedherein as “exemplary” is not necessarily to be construed as advantageousover other aspects or designs. Rather, use of the word exemplary isintended to present concepts in a concrete fashion. As used in thisapplication, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or”. That is, unless specified otherwise, or clearfrom context, “X employs A or B” is intended to mean any of the naturalinclusive permutations. That is, if X employs A; X employs B; or Xemploys both A and B, then “X employs A or B” is satisfied under any ofthe foregoing instances. In addition, the articles “a” and “an” as usedin this application and the appended claims may generally be construedto mean “one or more” unless specified otherwise or clear from contextto be directed to a singular form.

Also, although the disclosure has been shown and described with respectto one or more implementations, equivalent alterations and modificationswill occur to others skilled in the art based upon a reading andunderstanding of this specification and the annexed drawings. Thedisclosure includes all such modifications and alterations and islimited only by the scope of the following claims. In particular regardto the various functions performed by the above described components(e.g., elements, resources, etc.), the terms used to describe suchcomponents are intended to correspond, unless otherwise indicated, toany component which performs the specified function of the describedcomponent (e.g., that is functionally equivalent), even though notstructurally equivalent to the disclosed structure which performs thefunction in the herein illustrated exemplary implementations of thedisclosure. In addition, while a particular feature of the disclosuremay have been disclosed with respect to only one of severalimplementations, such feature may be combined with one or more otherfeatures of the other implementations as may be desired and advantageousfor any given or particular application. Furthermore, to the extent thatthe terms “includes”, “having”, “has”, “with”, or variants thereof areused in either the detailed description or the claims, such terms areintended to be inclusive in a manner similar to the term “comprising.”

1. A method of presenting a data feed comprising at least one data item,respective data items having at least one metadata item, on a display ofa device having a processor, the method comprising: executing on theprocessor instructions configured to: compare the metadata items ofrespective data items of the data feed to criteria of a first filter togenerate a first data subfeed; compare the metadata items of respectivedata items of the data feed to criteria of a second filter to generate asecond data subfeed; and concurrently present on the display a firstdata subfeed group comprising the data items of the first data subfeedand a second data subfeed group comprising the data items of the seconddata subfeed.
 2. The method of claim 1, the data feed comprising a firstdata item retrieved from a first data item source and a second data itemretrieved from a second data item source.
 3. The method of claim 1, atleast one filter comprising at least one filter criterion selected by auser from a criterion set comprising: an inclusion criterion specifyingat least one metadata item whereby matching data items are included bythe filter; and an exclusion criterion specifying at least one metadataitem whereby matching data items are excluded by the filter.
 4. Themethod of claim 1, at least one filter comprising at least one filtercriterion inferred by identifying at least one commonality among themetadata items of respective data items in the data feed.
 5. The methodof claim 4: respective data items generated by at least one entityhaving a relationship with a user, and at least one commonality amongmetadata items of respective data items related to the relationships ofthe entities with the user.
 6. The method of claim 1, at least onefilter comprising at least one filter criterion inferred by: identifyinga user action associated with a data item; identifying at least onerelevant metadata item of the data item that may have motivated the useraction; and inferring at least one filter criterion of at least onefilter based on the at least one relevant metadata item.
 7. The methodof claim 6: the user action indicating a user interest of the user inthe data item; identifying the at least one relevant metadata itemcomprising: identifying at least one metadata item that may havemotivated the user interest of the user in the data item; and inferringthe at least one filter criterion comprising: inferring at least onefilter criterion based on the at least one relevant metadata item, wheredata items having the at least one relevant metadata item may motivateuser interest of the user.
 8. The method of claim 6: the user actioncomprising a request to create a data subfeed comprising at least onedata item; and identifying the at least one relevant metadata itemcomprising: identifying at least one distinctive metadata item of the atleast one data item.
 9. The method of claim 6: the user actioncomprising a request to add at least one data item to a data subfeed;identifying the at least one relevant metadata item comprising:identifying at least one relevant metadata item of the data item havingat least one commonality with the metadata items of the data items inthe data subfeed; and inferring the at least one filter criterioncomprising: inferring at least one inclusion criterion based on the atleast one relevant metadata item.
 10. The method of claim 6: the useraction comprising a request to remove at least one data item from a datasubfeed; and identifying the at least one relevant metadata itemcomprising: identifying at least one relevant metadata item of the dataitem contrasting with the metadata items of the data items in the datasubfeed; and inferring the at least one filter criterion comprising:inferring at least one exclusion criterion based on the at least onerelevant metadata item.
 11. The method of claim 6: the user defining atleast one category having at least one category criterion related to atleast one filter criterion of at least one filter, and the methodcomprising: upon updating at least one filter criterion, update the atleast one category criterion based on the update of the at least onefilter criterion.
 12. The method of claim 1, at least one filter of atleast one data subfeed configured to include data items that areexcluded by the filters of other data subfeeds.
 13. The method of claim1, the instructions configured to remove data items from the second datasubfeed that are included in the first data subfeed.
 14. The method ofclaim 1: the instructions configured to, upon receiving a request from auser to assign a data subfeed name to a data subfeed, store the datasubfeed name related to the data subfeed; and presenting a data subfeedgroup comprising: presenting with the data subfeed group the datasubfeed name of the data subfeed.
 15. The method of claim 1, presentingthe data subfeeds on the display comprising: upon receiving a requestfrom the user to present the data feed, present on the display a datafeed group comprising the data items of the data feed instead of thedata subfeed groups; and upon receiving a request from the user topresent the data subfeeds, concurrently present on the display the firstdata subfeed group comprising the data items of the first data subfeedand the second data subfeed group comprising the data items of thesecond data subfeed instead of the data feed group.
 16. The method ofclaim 1, presenting the data subfeeds on the display comprising:presenting a first data subfeed column comprising horizontally aligneddata items of the first data subfeed; and presenting a second datasubfeed column comprising horizontally aligned data items of the seconddata subfeed, the second data subfeed column vertically aligned withrespect to the first data subfeed column.
 17. The method of claim 1, theinstructions configured to, upon receiving from the user a group displayrequest relating to presenting a data subfeed group, display the datasubfeed group of the data subfeed according to the group displayrequest.
 18. The method of claim 17, the instructions configured to:store the group display request of the user related to the data subfeed;and upon subsequently presenting the data subfeed group of the datasubfeed on the display: retrieve a stored group display request relatedto the data subfeed, and display the data subfeed group according to thestored group display request.
 19. A system configured to present on adisplay a data feed comprising at least one data item, respective dataitems having at least one metadata item, the system comprising: a datasubfeed generating component configured to: compare the metadata itemsof respective data items of the data feed to criteria of a first filterto generate a first data subfeed; compare the metadata items ofrespective data items of the data feed to criteria of a second filter togenerate a second data subfeed; and a data subfeed presenting componentconfigured to concurrently present on the display a first data subfeedgroup comprising the data items of the first data subfeed and a seconddata subfeed group comprising the data items of the second data subfeed.20. A computer-readable nontransient storage medium comprising computerinstructions that, when executed on a processor of a device having adisplay, present on the display to a user a data feed comprising atleast one data item, respective data items having at least one metadataitem and generated by at least one entity having a relationship with theuser, by: generating at least one filter upon receiving from a user ageneration of a filter comprising at least one filter criterion selectedfrom a set of filter criteria comprising: an inclusion criterionspecifying at least one metadata item whereby matching data items areincluded by the filter, and an exclusion criterion specifying at leastone metadata item whereby matching data items are excluded by thefilter; generating at least one filter comprising at least one filtercriterion representing at least one commonality among metadata items ofrespective data items related to the relationships of the entities withthe user; generating at least one filter configured to include dataitems that are excluded by the filters of other data subfeeds; removingdata items from the second data subfeed that are included in the firstdata subfeed; upon receiving a request from the user to present the datafeed, present on the display a data feed group comprising the data itemsof the data feed instead of the data subfeed groups; upon receiving arequest from the user to present the data subfeeds, concurrently presenton the display, instead of the data feed group: the first data subfeedgroup as a first data subfeed column comprising horizontally aligneddata items comprising the first data subfeed, and the second datasubfeed group as a second data subfeed column comprising horizontallyaligned data items comprising the second data subfeed, the second datasubfeed column vertically aligned with respect to the first data subfeedcolumn; upon detecting a user action of the user associated with atleast one data item, generating at least one filter comprising at leastone filter criterion representing at least one filter criterion inferredby: identifying at least one relevant metadata item of the data itemthat may have motivated the user action, and inferring at least onefilter criterion of at least one filter based on the at least onerelevant metadata item; comparing the metadata items of respective dataitems of the data feed to criteria of a first filter to generate a firstdata subfeed; comparing the metadata items of respective data items ofthe data feed to criteria of a second filter to generate a second datasubfeed; upon detecting a user action of the user comprising a requestto create a data subfeed comprising at least one data item, generating afilter comprising at least one filter criterion based on at least onedistinctive metadata item of the at least one data item; upon detectinga user action of the user to add at least one data item to a datasubfeed: identifying at least one relevant metadata item of the dataitem having at least one commonality with the metadata items of the dataitems in the data subfeed, and inferring the at least one filtercriterion comprising: inferring at least one inclusion criterion basedon the at least one relevant metadata item; upon detecting a user actionof the user to remove least one data item from a data subfeed:identifying the at least one relevant metadata item comprising:identifying at least one relevant metadata item of the data itemcontrasting with the metadata items of the data items in the datasubfeed, and inferring the at least one filter criterion comprising:inferring at least one exclusion criterion based on the at least onerelevant metadata item; upon receiving a request from a user to assign adata subfeed name to a data subfeed: storing the data subfeed namerelated to the data subfeed, and presenting a data subfeed groupcomprising: presenting with the data subfeed group the data subfeed nameof the data subfeed; and upon receiving from the user a group displayrequest relating to presenting a data subfeed group: display the datasubfeed group of the data subfeed according to the group displayrequest; store the group display request of the user related to the datasubfeed; and upon subsequently presenting the data subfeed group of thedata subfeed on the display: retrieve a stored group display requestrelated to the data subfeed, and display the data subfeed groupaccording to the stored group display request.